package cn.zyq.baking.controller;

import cn.zyq.baking.commons.response.JsonResult;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.text.SimpleDateFormat;
import java.util.UUID;

@RestController
@RequestMapping("/")
public class UploadImgController {
    @Value("${file-path}")
    private String dirPath;

    @RequestMapping("upload")
    public JsonResult uploadImg(MultipartFile file)throws  Exception{
        String fileName=file.getOriginalFilename();
        //截取后缀名  a.jpg     .jpg
        String suffixName=fileName.substring(fileName.lastIndexOf(".")).toLowerCase();
        //得到唯一文件名  UUID.randomUUID()得到一个唯一标识
        fileName= UUID.randomUUID().toString()+suffixName;
        SimpleDateFormat sdf=new SimpleDateFormat("/yyyy/MM/dd/HH/");
        String datePath=sdf.format(new java.util.Date());//将今天日期格式化为字符串，用作文件夹名来存储上传的图片
        File dirFile=new File(dirPath+datePath);// d:/files/2023/09/13/
        if(!dirFile.exists()){
            dirFile.mkdirs();
        }
        //d:/files/2023/09/13/xxxxx.jpg
        String filePath=dirPath+datePath+fileName;
        //把接收到的文件保存到指定的路径  异常抛出
        file.transferTo(new File(filePath));
        //把上传成功的文件路径响应给客户端  /2023/09/13/xxxxx.jpg

        //这里还缺少修改数据库中的信息代码

        return JsonResult.ok(datePath+fileName);//uploadFileX
        //return JsonResult.ok("http://localhost:8088/uploadFileX/"+datePath+fileName);//uploadFileX////////////////////////////////////////
    }

    @PostMapping("removeUploadFile")
    public JsonResult remove(String url){
        //删除磁盘上的文件     url是 /2023/09/13/xxxxx.jpg，前边还需要拼接  ${file-path}  "d:/files"
        new File(dirPath+url).delete();
        return JsonResult.ok();
    }

}
